home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / Pascal OS8 / Everything / ModelessStuff.p < prev    next >
Encoding:
Text File  |  1998-10-30  |  3.8 KB  |  182 lines  |  [TEXT/CWIE]

  1. { ModelessStuff.p -- modeless dialog }
  2. { Created 10/30/98 1:06 PM by AppMaker }
  3.  
  4. Unit ModelessStuff;
  5. Interface
  6.  
  7. Uses
  8.     Types,
  9.     Quickdraw,
  10.     Controls,
  11.     Dialogs,
  12.     Events,
  13.     Lists,
  14.     Menus,
  15.     TextEdit,
  16.     DModelessStuffData,
  17.     AMDialog;
  18.  
  19. Procedure ShowModelessStuff;
  20.  
  21. type
  22.     CModelessStuff        = object (AMDialog)
  23.  
  24.     {data members}
  25.         mData:        DModelessStuffData;
  26.  
  27.     mToolsHandle:        ControlHandle;
  28.     mPopupsHandle:        ControlHandle;
  29.     mFromValuesList2Handle:        ControlHandle;
  30.     mFromMenuHandle:        ControlHandle;
  31.     mListsHandle:        ControlHandle;
  32.     mTextListHandle:        ControlHandle;
  33.  
  34.     {methods - public}
  35.         Procedure ConnectToData    (inData:    AMSignaler); Override;
  36.  
  37.     {methods - internal}
  38.         Procedure FinishMake; Override;
  39.         Procedure DoItem    (inItemHit:    SInt16); Override;
  40.         Procedure DataChanged    (inDataID:    longint); Override;
  41.  
  42.     end;
  43.  
  44. var
  45.     sModelessStuffPtr:        DialogPtr;
  46.  
  47. {----------}
  48. Implementation
  49.  
  50. Uses
  51.     ResourceDefs,
  52.     ControlUtils,
  53.     Miscellany;
  54.  
  55. const
  56.     kToolsPalette        = 1;
  57.     kPopupsBox        = 2;
  58.     kFromValuesList2Popup        = 3;
  59.     kFromMenuPopup        = 4;
  60.     kListsBox        = 5;
  61.     kTextListList        = 6;
  62.  
  63. {    Procedure BuildTextListList    (inControl:        ControlHandle);    }
  64.  
  65. {----------}
  66. Procedure BuildTextListList (
  67.     inControl:        ControlHandle);
  68. var
  69.     list:        ListHandle;
  70. begin
  71.     list := GetListHandle (inControl);
  72.     AddToList ("One",   list);
  73.     AddToList ("Two",   list);
  74.     AddToList ("Three", list);
  75.     AddToList ("Infinity",  list);
  76.  
  77. end; {BuildTextListList}
  78.  
  79. {----------}
  80. Function NewModelessStuff: CModelessStuff;
  81. var
  82.     dialog:        CModelessStuff;
  83. begin
  84.     dialog := nil;
  85.     New (dialog);
  86.  
  87.     if dialog <> nil then begin
  88.         dialog.Initialize;
  89.     end;
  90.     NewModelessStuff := dialog;
  91. end;
  92.  
  93. {----------}
  94. Procedure CreateModelessStuff;
  95. var
  96.     dialog:        CModelessStuff;
  97.     data:        DModelessStuffData;
  98. begin
  99.     dialog := NewModelessStuff;
  100.     data := NewDModelessStuffData;
  101.  
  102.     dialog.MakeDialog (DLOG_ModelessStuff);
  103.     dialog.ConnectToData (data);
  104. end; {CreateModelessStuff}
  105.  
  106. {----------}
  107. Procedure ShowModelessStuff;
  108. begin
  109.     if sModelessStuffPtr = nil then begin
  110.         CreateModelessStuff;
  111.     end;
  112.     if sModelessStuffPtr <> nil then begin
  113.         SelectWindow (sModelessStuffPtr);
  114.         ShowWindow (sModelessStuffPtr);
  115.     end;
  116. end; {ShowModelessStuff}
  117.  
  118. {----------}
  119. Procedure CModelessStuff.FinishMake;
  120. var
  121.     errCode:        OSErr;
  122. begin
  123.     sModelessStuffPtr := mDialog;
  124.  
  125.     mToolsHandle := GetControlItem (kToolsPalette);
  126.     mPopupsHandle := GetControlItem (kPopupsBox);
  127.     mFromValuesList2Handle := GetControlItem (kFromValuesList2Popup);
  128.     mFromMenuHandle := GetControlItem (kFromMenuPopup);
  129.     mListsHandle := GetControlItem (kListsBox);
  130.     mTextListHandle := GetControlItem (kTextListList);
  131. end;
  132.  
  133. {----------}
  134. Procedure CModelessStuff.ConnectToData (
  135.     inData:        AMSignaler); Override;
  136. begin
  137.     inherited ConnectToData (inData);
  138.     mData := DModelessStuffData (inData);
  139.  
  140.     SetControlValue (mToolsHandle, mData.GetTools3);
  141.     SetControlValue (mFromValuesList2Handle, mData.GetFromValuesList4);
  142.     SetControlValue (mFromMenuHandle, mData.GetFromMenu3);
  143.     BuildTextListList (mTextListHandle);
  144.     SetListBoxChoice (mTextListHandle, mData.GetTextList3);
  145. end;
  146.  
  147. {----------}
  148. Procedure CModelessStuff.DoItem (
  149.     inItemHit:        SInt16);
  150. begin
  151.     case inItemHit of
  152.     kToolsPalette:
  153.             mData.SetTools3 (GetControlValue (mToolsHandle));
  154.     kFromValuesList2Popup: begin
  155.             mData.SetFromValuesList4 (GetControlValue (mFromValuesList2Handle));
  156.         end;
  157.     kFromMenuPopup: begin
  158.             mData.SetFromMenu3 (GetControlValue (mFromMenuHandle));
  159.         end;
  160.     kTextListList:
  161.             mData.SetTextList3 (GetListBoxChoice (mTextListHandle));
  162.  
  163.     end; {switch}
  164. end;
  165.  
  166. {----------}
  167. Procedure CModelessStuff.DataChanged (
  168.     inDataID:        longint); Override;
  169. begin
  170.     if inDataID = idTools3 then begin
  171.         SetControlValue (mToolsHandle, mData.GetTools3);
  172.     end;
  173.     if inDataID = idFromValuesList4 then begin
  174.         SetControlValue (mFromValuesList2Handle, mData.GetFromValuesList4);
  175.     end;
  176.     if inDataID = idFromMenu3 then begin
  177.         SetControlValue (mFromMenuHandle, mData.GetFromMenu3);
  178.     end;
  179. end;
  180.  
  181. End.
  182.